#include <stdio.h>


#include "ListWrap.h"

#define GENERATE_LIST_IMP(X) \
X##List* X##ListNew(void)  \
{ \
    return ListNew(); \
} \
void X##ListDel(X##List* _list) \
{ \
    ListDel(_list); \
} \

/*
int X##ListPushH(X##List* _list, void* _data) \
{
    return ListPushH(_list, _data);
}

int X##ListPushT(X##List* _list, void* _data) \
{
    return ListPushT(_list, _data);
}

int X##ListPushHM(X##List* _list, size_t _elementSize, size_t _vectNumOfElem, void* _dataVector) \
{
    return ListPushHM(_list, _elementSize, _vectNumOfElem, _dataVector);
}

int X##ListPushTM(X##List* _list, size_t _elementSize, size_t _vectNumOfElem, void* _dataVector) \
{ \
    return ListPushHM(_list, _elementSize, _vectNumOfElem, _dataVector); \
} \
X##* X##ListHead(X##List* _list) \
{ \
    return (X##)ListHead(_list); \
} \

X##* X##ListTail(X##List* _list) \
{
    return (X##)ListTail(_list); \
}\

void X##ListPopH(X##List* _list) \
{
    ListPopH(_list); \
}\

void X##ListPopT(X##List* _list) \
{
    ListPopT(_list);
}

void X##ListPopHM(X##List* _list, size_t _vectNumOfElem); \
void X##ListPopTM(X##List* _list, size_t _vectNumOfElem); \
void* X##ListFindIf(X##List* _list, int (*_isMatch)(void* _data, void* _param), void* _param); \
size_t X##ListCount(X##List* _list); \
int X##ListIsEmpty(X##List* _list);


    list->head.prev = 0;
    list->tail.next = 0;
    list->head.next = &(list->tail);
    list->tail.prev = &(list->head);
    list->head.data = 0;
    list->tail.data = 0;

    return list;
}*/
